package com.huajin.codetest.lock.lock;

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

/**
 * https://blog.csdn.net/liubenlong007/article/details/92796001
 * https://blog.csdn.net/tang_huan_11/article/details/127517757
 * https://zhuanlan.zhihu.com/p/517749666
 * 
 * ReenTrantLock
 * 
 * ReentrantLock提供了公平锁和非公平锁两种模式，如果没有特别的去指定使用何种方式，那么ReentrantLock会默认为非公平锁
 */
public class ReenTrantLockTest {
	
	public static void main(String[] args) {
	
	}
	
	/**
	 * 标准使用方式
	 */
	public void standardUse() {
		Lock lock = new ReentrantLock();
		lock.lock();
		try {
			//更新对象状态
			//捕获异常，并在必须时恢复不变性条件
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			lock.unlock();
		}
	}

}
